//package com.zmn.plat.dubbo.interfaces.service;
//
//import com.zmn.common.dto2.ResponseDTO;
//import com.zmn.plat.common.dto.product.MaxAveragePriceDRO;
//import com.zmn.plat.common.dto.service.item.*;
//import com.zmn.plat.common.dto.service.itempart.ItemPartDRO;
//import com.zmn.plat.dubbo.interfaces.price.ItemPriceRemoteService;
//import com.zmn.plat.dubbo.utils.DubboConsts;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//
//import javax.validation.Valid;
//import javax.validation.constraints.NotEmpty;
//import javax.validation.constraints.NotNull;
//import javax.validation.constraints.Positive;
//import javax.validation.constraints.Size;
//import java.util.List;
//
///**
// * @author tanbiao
// * @description
// * @modifier
// * @since 2019/12/26 19:29
// **/
//@Api(value = "故障项服务", tags = {"故障项"})
//public interface ServiceItemListRemoteService {
//    /**
//     * 功能描述 :根据故障项id查询故障项
//     *
//     * @param itemId
//     * @return com.zmn.plat.common.dto.product.service.item.FaultItemDRO
//     * @author tanbiao
//     * @modifier
//     * @since 2019/12/5
//     */
//    @ApiOperation(value = "根据故障项id查询故障项", response = ResponseDTO.class, notes = "故障项id查询故障项", tags = {"详情"})
//    ResponseDTO<ServiceItemDRO> getById(@NotNull(message = "itemId不能为空") @Positive(message = "itemId必须为大于0的正整数") @ApiParam(value = "服务项id", required = true) Integer itemId);
//
//    /**
//     * 查询产品默认价格表
//     *
//     * @param brandId    可选，传递之后将计算品牌系数
//     * @param channelId  渠道ID
//     * @param productId  产品ID
//     * @param keepType   1保外/2保内
//     * @param cityId     城市：用于取城市价格系数
//     * @param tariffType 价格表类型 1 服务 2计价器
//     * @return
//     */
//    @ApiOperation(value = "查询产品默认价格表", response = ResponseDTO.class, notes = "默认价格表", tags = {"默认价格表"})
//    ResponseDTO<ProductPriceTableDRO> getProductDefaultPriceTable(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) ServiceItemServDIO dio);
//
//    /**
//     * 描述：查询服务项最大的服务时间，如果服务项配置了服务时间取服务项的服务时间，没有配置，取前台产品二级分类下设置的服务时长，单位分钟
//     *
//     * @param productId
//     * @param itemIdList
//     * @return com.zmn.common.dto2.ResponseDTO<java.lang.Integer>
//     * @desc 20210113 需求变更，只取项目上的服务时长，不在往上取二级分类的时长；同时变更，不存在返回0，表示不限制
//     * @author tanbiao
//     * @modifier
//     * @since 2020/12/9 9:50
//     */
//    @ApiOperation(value = "查询服务项的最大服务时长", response = ResponseDTO.class, notes = "服务项", tags = {"服务项"})
//    ResponseDTO<Integer> getMaxServiceMinutes(@ApiParam(value = "产品id", required = true) Integer productId,
//                                              @NotEmpty(message = "itemIdList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//                                                      message = "itemIdList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "服务项id", required = true) List<Integer> itemIdList
//    );
//
//    @ApiOperation(value = "查询服务项的最大服务时长", response = ResponseDTO.class, notes = "服务项", tags = {"服务项"})
//    ResponseDTO<Integer> getMaxServiceMinutes(@ApiParam(value = "产品id", required = true) Integer productId,
//                                              @NotEmpty(message = "itemIdList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//                                                      message = "itemIdList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "服务项id", required = true) List<Integer> itemIdList,
//                                              @ApiParam(value = "分公司id", required = true) Integer companyId);
//
//    @ApiOperation(value = "通过服务ID查询配件列表", response = ResponseDTO.class, notes = "服务项", tags = {"服务项"})
//    ResponseDTO<List<ItemPartDRO>> getItemPartByItemId(@NotEmpty(message = "itemIdList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//            message = "itemIdList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "服务项id", required = true) List<Integer> itemIdList);
//
//    /**
//     * 描述:根据服务项查询条件查询服务项详细信息
//     *
//     * @param servItemPriceDIO
//     * @return
//     * @auther tanghongjun
//     * @since 2018/11/27 16:00
//     * @see ItemPriceRemoteService#listItemPriceByQuery(com.zmn.plat.common.dto.price.ItemPriceQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "根据服务项查询条件查询服务项详细信息", response = ResponseDTO.class, notes = "", tags = {"详情"})
//    ResponseDTO<List<ProductServiceItemDRO>> listByDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) ServiceItemServPriceDIO servItemPriceDIO);
//
//    /**
//     * 描述:查询特殊服务项信息
//     *
//     * @param categIds
//     * @return
//     * @auther tanghongjun
//     * @since 2018/11/27 16:00
//     */
//    @ApiOperation(value = "查询特殊服务项信息", response = ResponseDTO.class, notes = "特殊服务项", tags = {"特殊服务项"})
//    ResponseDTO<List<ProductServiceItemDRO>> listByCategIdList(@NotEmpty(message = "categIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//            message = "categIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "特殊服务项id", required = true) List<Integer> categIds);
//
//
//    /**
//     * 描述:查询特殊服务项信息
//     *
//     * @param categIds
//     * @param companyId
//     * @return
//     * @auther yangshuangping
//     * @since 2021-7-28
//     */
//    @ApiOperation(value = "查询特殊服务项信息", response = ResponseDTO.class, notes = "特殊服务项", tags = {"特殊服务项"})
//    ResponseDTO<List<ProductServiceItemDRO>> listByCategIdList(@NotEmpty(message = "categIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH)
//                                                               @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH, message = "categIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH)
//                                                               @ApiParam(value = "特殊服务项id", required = true) List<Integer> categIds,
//                                                               @ApiParam(value = "分公司id", required = true) Integer companyId);
//
//    /**
//     * 描述: 根据服务组ID查询服务项详细信息
//     *
//     * @param groupId
//     * @return: List<FaultItemDRO>
//     * @auther: tanghongjun
//     * @since: 2018/10/23 11:11
//     */
//    @ApiOperation(value = "根据服务组ID查询服务项详细信息", response = ResponseDTO.class, notes = "服务组ID查询服务项", tags = {"服务组ID查询服务项"})
//    ResponseDTO<List<ServiceItemDRO>> listByGroupId(@NotNull(message = "groupId不能为空") @Positive(message = "groupId必须为大于0的正整数") @ApiParam(value = "分组id", required = true) Integer groupId);
//
//    /**
//     * 描述: 根据查询条件查询服务项信息
//     *
//     * @param query
//     * @return: List<FaultItemDRO>
//     * @auther: tanghongjun
//     * @since: 2018/10/23 11:12
//     */
//    @ApiOperation(value = "根据查询条件查询服务项信息", response = ResponseDTO.class, notes = "", tags = {"服务项信息"})
//    ResponseDTO<List<ServiceItemDRO>> listByDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) ServiceItemDIO query);
//
//    /**
//     * 描述: 根据产品ID和城市ID查询服务项价格平均值和最大值，价格不进行计算
//     *
//     * @param productId  产品ID
//     * @param cityId     城市ID
//     * @param keepType   1保外2保内
//     * @param channelId  渠道ID
//     * @param tariffType 价格表类型 1 服务 2计价器
//     * @return: ServServiceItemDRO
//     * @auther: tanghongjun
//     * @since: 2018/10/23 11:11
//     */
//    @ApiOperation(value = "根据产品ID和城市ID查询服务项价格平均值和最大值，价格不进行计算", response = ResponseDTO.class, notes = "价格不进行计算", tags = {"平均值", "最大值"})
//    ResponseDTO<MaxAveragePriceDRO> getMaxAveragePriceByChannelIdAndTypeAndCityIdAndProductId(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) ServiceItemServDIO dio);
//
//    /**
//     * 描述: 根据产品ID和城市ID查询服务项价格信息 brandId可选，传递之后将计算品牌系数
//     *
//     * @param productId  产品ID
//     * @param cityId     城市ID
//     * @param type       1保外2保内
//     * @param channelId  渠道ID
//     * @param tariffType 价格表类型 1 服务 2计价器
//     * @return: ServServiceItemDRO
//     * @auther: tanghongjun
//     * @since: 2018/10/23 11:11
//     */
//    @ApiOperation(value = "根据产品ID和城市ID查询服务项价格信息", response = ResponseDTO.class, notes = "服务项价格", tags = {"服务项价格"})
//    ResponseDTO<List<ProductServiceItemDRO>> listByChannelIdAndTypeAndCityIdAndProductId(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) ServiceItemServDIO dio);
//
//
//}
